// File: jmcomic-core/src/main/java/dev/jukomu/jmcomic/client/JmCategoryClient.java
package dev.jukomu.jmcomic.client;

import dev.jukomu.jmcomic.config.JmMagicConstants;
import dev.jukomu.jmcomic.entity.JmSearchPage;

/**
 * 对应Python的JmCategoryClient，定义按分类过滤和排行榜的接口。
 */
public interface JmCategoryClient {

    /**
     * 按分类过滤。
     *
     * @param page        页码。
     * @param time        时间范围。
     * @param category    类别。
     * @param orderBy     排序方式。
     * @param subCategory 副类别。
     * @return JmSearchPage实例 (作为JmCategoryPage)。
     */
    JmSearchPage categoriesFilter(int page, String time, String category, String orderBy, String subCategory);

    default JmSearchPage monthRanking(int page, String category) {
        return categoriesFilter(page, JmMagicConstants.TIME_MONTH, category, JmMagicConstants.ORDER_BY_VIEW, null);
    }

    default JmSearchPage weekRanking(int page, String category) {
        return categoriesFilter(page, JmMagicConstants.TIME_WEEK, category, JmMagicConstants.ORDER_BY_VIEW, null);
    }

    default JmSearchPage dayRanking(int page, String category) {
        return categoriesFilter(page, JmMagicConstants.TIME_TODAY, category, JmMagicConstants.ORDER_BY_VIEW, null);
    }
}